1. Field of the Invention
The present invention relates to a signal receiving apparatus employed in a data communication system for performing a data communication among a plurality of electronic appliances mutually connected via a communication control bus. In this signal receiving apparatus, isochronous data irregularly received is transferred to a data processing unit without losing the isochronous data while asynchronous data continuously received every predetermined time period is not transferred to the data processing unit uninterrupted.
2. Description of the Related Art
A communication system is conceivable such that a plurality of electronic appliances ("appliances" hereinafter) are connected by a communication control bus such as the P1394 serial bus on which a control signal and an information signal can be handled in a mixed manner, and then the information signal and the control signal are communicated.
It should be noted that a detailed description about the P1394 serial bus involving the node ID allocation sequence is given in "IEEE P1394 Serial Bus Specification," issued on Oct. 14, 1993.
Six Patent Applications have been filed by the Applicant as the related art:
1. EPO Patent Laid-open No. 0614297 PA1 2. Japanese Patent Application No. 05126682 PA1 3. Japanese Patent Application No. 05200055 PA1 4. Japanese Patent Application No. 06051246 PA1 5. Japanese Patent Application No. 06134940 PA1 6. Japanese patent Application No. 06165883
These six patent applications have been filed as U.S. corresponding patent applications.
In FIG. 2, there is shown an example of a communication system. This communication system is comprised of appliances A, B, C, D and E. Then, twisted-pair cables of the P1394 serial bus are employed so as to connect the appliances A and B; A and C; C and D; and C and E. These appliances are for instance, a digital VTR, a tuner, a monitor, a personal computer and so on. Since each of these appliances are able to relay an information signal and a control signal, which are input from the twisted-pair cables, this system is equivalent to such a system where the respective appliances are connected to a common P1394 serial bus.
As represented in FIG. 3, the data transmission among the appliances A to E which commonly share the bus is carried out in a time division multiplex every predetermined communication cycle (for example, 125 .mu.sec). The communication cycle on the bus is managed by a so-termed "cycle master". That is, the appliance A transfers an isochronous packet (cycle start packet) indicative of starting of the communication cycle to other appliances on the bus. Then, as a result, the data transmission in this communication cycle is commenced.
As a format of data transmitted within one communication cycle, there are two sorts of data, namely, isochronous data such as video data and audio data, and asynchronous data such as an operation command of an appliance. A packet of isochronous data (an "isochronous packet" hereinafter) is transmitted with priority, with respect to a packet of asynchronous data (an "asynchronous packet" hereinafter).
A plurality of isochronous packets may be discriminated from each other by attaching channel numbers 1, 2, 3, . . . , to the respective isochronous packets. The time period after all of the appliances which want to transmit the isochronous packets have transmitted the isochronous packets, and until the next cycle start packet, is used to transmit the asynchronous packet. It should be noted that FIG. 3 represents only one isochronous packet within one communication cycle.
An isochronous packet is continuously transmitted in every communication cycle until a transmission appliance has completed transmission of data to be transmitted. On the other hand, an asynchronous packet is only transmitted if required. There is no problem, even when an asynchronous packet could not be transmitted in a certain communication cycle, when the asynchronous packet can be transmitted within a predetermined time period. To the contrary, an isochronous packet should be transmitted within every communication cycle.
Each of the appliances connected to the bus identifies the isochronous data directed to it from the channel numbers written into the isochronous packet, and also identifies the asynchronous data directed to it from the node IDs (namely, physical addresses of respective appliances, to which the node IDs are automatically allocated based on connecting relationship when respective appliances are connected to P1394 serial bus) written into the asynchronous packet.
FIG. 4 is a block diagram for indicating an arrangement of a data receiving portion of an appliance employed in a communication system. As previously explained, a receiving appliance 11 and a transmitting appliance 12 are a digital VTR, a monitor, a personal computer and so on. More than one input/output port (not shown) of the respective appliances are connected with each other via two sets of communication cables (twisted-pair cables) 13 used to input/output data. It should be noted that although one appliance employed in the communication system receives the data from the other appliance, as shown in FIG. 4, there are other cases. For instance, either the appliance A, or the appliance C of FIG. 2, may receive data from more than two other appliances within the same communication cycle, or transmit/receive data to/from them.
The data transmitted from the transmitting appliance 12 is inputted via the communication cables 13 to a receiver 14 of the receiving appliance 11. To the receiver 14, a GRF state signal "d" is entered from a general receive FIFO 15 (a "GRF" hereinafter). Then, the receiver 14 can write a reception signal "c" into the GRF 15 unless this GRF state signal "d" is equal to "Full".
The receiver 14 identifies whether the packet of the reception signal "c" corresponds to an isochronous packet, or an asynchronous packet based upon the header of this packet. Then, when the reception signal "c" corresponds to the asynchronous packet and this asynchronous packet can be written into the GRF 15, the receiver 14 returns "OK Ack (Acknowledge; positive response)" indicative of reception OK to the transmitting appliance 12. When the GRF state signal "d" is "Full", the received asynchronous data cannot be written into the GRF 15 and the receiver 14 returns "Busy Ack" to the transmitting appliance 12. The transmitting appliance 12 to which "Busy Ack" has been returned tries to again transmit the same asynchronous packet within a time period during which asynchronous transmission is allowed.
On the other hand, in the case that the reception signal "c" is the isochronous packet, the reception signal "c" is written into the GRF 15 when the GRF state signal "d" is not "Full", whereas the reception signal "c" is discarded when the GRF state signal "d" is "Full".
The packets which have been written into the GRF 15 are successively read by a separator 16 in the order of the packet writing order, and are separated into the isochronous data "a" and the asynchronous data "b" based on the headers of the packets. Thus, the isochronous data "a" is inputted into an isochronous data processing block 17, and the asynchronous data "b" is entered into an asynchronous data processing block 18.
In the arrangement as shown in FIG. 4, even when the buffer memory having the sufficient memory capacity to the communication amount of the isochronous data is provided with the isochronous data processing block 17, and the buffer memory having the memory capacity corresponding to several asynchronous data packets is provided with the asynchronous data processing block 18, there is a problem. That is, when the reading speed of the asynchronous data packet is delayed as compared with the communication cycle, and more asynchronous data successively arrive, then the GRF 15 also becomes "Full" after the buffer memory employed in the asynchronous type data processing block 18 overflows.
Under such a circumstance, when the received packet is the asynchronous packet, "Busy Ack" is returned to the transmitting appliance 12. When the received packet is the isochronous packet, this isochronous packet is discarded.
As explained before, as to the asynchronous packet, the transmitting appliance 12 retransmits this asynchronous packet and the receiving appliance 11 again can receive it. However, the isochronous packet must be continuously received. However, since only one GRF 15 is provided with the receive buffer, there is only one sort of Full flag for both the isochronous data and the asynchronous data.
Thus, in order not to discard the isochronous data, if the Full flag is neglected and the isochronous packet is continuously written into the GRF 15, when the GRF 15 is under "Full" condition, this isochronous packet would overwrite the asynchronous data.
Since the "OK Ack" has been returned when the asynchronous packet was written into the GRF 15, the transmitting appliance 12 judges that the data packet was received under normal conditions, and therefore does not retransmit the data packet. Accordingly, this asynchronous packet will be lost.
The present invention has been made to solve such problems, and has an object to provide a signal receiving apparatus having a buffer with a minimum buffer size, capable of receiving an isochronous packet without any interruption and also of receiving an asynchronous packet without any loss.